<?php
namespace App\Console;

use Illuminate\Support\Facades\Log;

trait CommandTrait {
    protected $isSetLogFile = false;

    /**获取日志文件
     * @return string
     */
    public function getLogFile()
    {
        return storage_path('command/'.class_basename($this).'.log');
    }

    /**
     * 设置日志文件
     */
    protected function setLogFile()
    {
        return true;
        $monolog = Log::getMonolog();
        $monolog->popHandler();
        Log::useDailyFiles($this->getLogFile());
    }

    /**转string
     * @param $data
     * @return string
     */
    public function toString($data) {
        return is_string($data) ? $data : json_encode($data, JSON_UNESCAPED_UNICODE);
    }
    /**开始日志
     * @param $data
     */
    public function startLog($data)
    {
        $data .= ' -- start ';
        $this->setLog($data);
    }

    /**脚本结束完日志
     * @param $data
     */
    public function endLog($data)
    {
        $data .= ' -- end ';
        $this->setLog($data);
    }

    /**设置日志
     * @param $data
     */
    public function setLog($data)
    {
        //设置记录日志的文件
        if (!$this->isSetLogFile) {
            $this->setLogFile();
            $this->isSetLogFile = true;
        }
        //输出日志
        Log::info($data);
        $this->comment($data);
    }
}